The present disclosure relates to virtual machines (VMs). In particular, this disclosure relates to automated software product deployment in a virtual machine environment.
A virtual machine (VM) may be a software implementation of a computing machine (i.e., a computer) that executes program instructions in a manner similar to a physical computing machine. A certain type of virtual machine may emulate an entire system platform which may support the execution of a complete operating system (OS) (e.g., WINDOWS or LINUX). Another type of virtual machine may emulate a single operating system process, which may be useful for running a single program. Software running on a VM may be limited to the resources and abstractions provided by the virtual machine, and may not operate outside of its virtual (limited) environment. Limiting a software application's accessibility to resources may be useful in protecting certain computing resources (e.g., memory, disk storage) which may be shared with other applications, programs or VMs, from software errors and security-related issues. Current use of virtual machines may include implementations which may have no direct correspondence to any physical machine hardware implementations.
A hypervisor or virtual machine monitor (VMM) may be a piece of computer software, firmware or hardware that may be used to create, provision and run virtual machines on a computer system. A computer on which a hypervisor is running one or more virtual machines may be defined as a “host” machine. Each virtual machine may be called a “guest” machine. The hypervisor may present guest machines with a virtual operating platform and may manage the execution of guest operating systems. A hypervisor may allow multiple instances of a variety of operating systems to share virtualized versions of hardware resources such as memory, disk storage space and IP addresses.